Data backup is well known. Traditionally, data backup consisted of copying data onto a bulk archival media such as a tape on a periodic basis. Tape backup has been replaced or supplemented more recently by disk redundancy systems. A disk redundant system typically includes at least two storage devices such as disk storage devices in which identical data is stored. If data in one device is lost or damaged as a result of the device malfunctioning or becoming disabled, the data is retrieved from the other device. In order to protect data, redundant systems are sometimes maintained at different geographic locations. That is, in order to protect data stored at a location from system malfunctions, weather disasters or other types of unforeseen conditions, redundant data is stored at different (or remote) physical locations. Data redundancy is also referred to as data mirroring and typically involves the submission of simultaneous ‘write’ requests to multiple storage devices.
In mission-critical applications, maintaining synchronization between data at mirrored sites is highly desirable. Synchronization in this context means that all mirrored storage devices must acknowledge receipt of an I/O request from a requesting application before the application may generate the next I/O request. As the distance between the mirrored sites increases, synchronization becomes harder to achieve using existing mirroring techniques and methods as the application generating the I/O request is slowed while awaiting acknowledgement from the remote storage device. Typically, in a data mirroring arrangement, a server is attached or connected to a local data storage device as well as to a remote data storage device with the data from each storage device mirroring that of another. It is possible to obtain synchronization using existing techniques if the physical distance between the mirrored sites is less than approximately twenty-five (25) miles.
For greater distances (i.e., greater than twenty-five miles), existing techniques do not provide synchronicity that is needed for maintaining data security in case of a wide-spread calamity.